<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>EnTech FPK: Service Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">EnTech FPK
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">FRC Programming Kit by the EnTech 281 GreenVillains</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="class_service-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Service Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_service_8hpp_source.html">Service.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Service:</div>
<div class="dyncontent">
 <div class="center">
  <img src="class_service.png" usemap="#Service_map" alt=""/>
  <map id="Service_map" name="Service_map">
<area href="class_subscriber.html" alt="Subscriber" shape="rect" coords="0,0,683,24"/>
<area href="class_compound_service.html" alt="CompoundService" shape="rect" coords="693,112,1376,136"/>
<area href="class_dummy_service.html" alt="DummyService" shape="rect" coords="693,168,1376,192"/>
<area href="class_game_service.html" alt="GameService" shape="rect" coords="693,224,1376,248"/>
<area href="class_joystick_drive_service.html" alt="JoystickDriveService&lt; Drive, Value, Handler &gt;" shape="rect" coords="693,280,1376,304"/>
<area href="class_joystick_drive_service.html" alt="JoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;" shape="rect" coords="693,336,1376,360"/>
<area href="class_live_window_service.html" alt="LiveWindowService" shape="rect" coords="693,392,1376,416"/>
<area href="class_ps3_drive_service.html" alt="Ps3DriveService&lt; Drive, Value, Fetcher, Handler &gt;" shape="rect" coords="693,448,1376,472"/>
<area href="class_selector_service.html" alt="SelectorService&lt; Item &gt;" shape="rect" coords="693,504,1376,528"/>
<area href="class_selector_service.html" alt="SelectorService&lt; Service * &gt;" shape="rect" coords="693,560,1376,584"/>
<area href="class_state.html" alt="State" shape="rect" coords="693,616,1376,640"/>
<area href="class_state_machine_service.html" alt="StateMachineService" shape="rect" coords="693,672,1376,696"/>
<area href="class_two_joystick_drive_service.html" alt="TwoJoystickDriveService&lt; Drive, Value, Handler &gt;" shape="rect" coords="693,728,1376,752"/>
<area href="class_two_joystick_drive_service.html" alt="TwoJoystickDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;" shape="rect" coords="693,784,1376,808"/>
<area href="class_two_joystick_drive_service.html" alt="TwoJoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;" shape="rect" coords="693,840,1376,864"/>
<area href="class_xbox_drive_service.html" alt="XboxDriveService&lt; Drive, Value, Handler &gt;" shape="rect" coords="693,896,1376,920"/>
<area href="class_xbox_drive_service.html" alt="XboxDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;" shape="rect" coords="693,952,1376,976"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acc246c9f7ed3c51e2d91d10fe257513f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#acc246c9f7ed3c51e2d91d10fe257513f">Service</a> ()</td></tr>
<tr class="separator:acc246c9f7ed3c51e2d91d10fe257513f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6c3577b59652ac817d1d76aaccee904"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#af6c3577b59652ac817d1d76aaccee904">~Service</a> ()</td></tr>
<tr class="separator:af6c3577b59652ac817d1d76aaccee904"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6ba2b89e56e24074c03c61254ab7f14"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#ac6ba2b89e56e24074c03c61254ab7f14">GetIsStarted</a> () const </td></tr>
<tr class="separator:ac6ba2b89e56e24074c03c61254ab7f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab90e8000ec50c6c618226d27a562b151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#ab90e8000ec50c6c618226d27a562b151">Start</a> ()</td></tr>
<tr class="separator:ab90e8000ec50c6c618226d27a562b151"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e52f5900502d844e424861b20fcd66b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#a5e52f5900502d844e424861b20fcd66b">Stop</a> ()</td></tr>
<tr class="separator:a5e52f5900502d844e424861b20fcd66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_subscriber"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_subscriber')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_subscriber.html">Subscriber</a></td></tr>
<tr class="memitem:acf994baa7d26eaa3d05c767b695e5d64 inherit pub_methods_class_subscriber"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subscriber.html#acf994baa7d26eaa3d05c767b695e5d64">Subscriber</a> ()</td></tr>
<tr class="separator:acf994baa7d26eaa3d05c767b695e5d64 inherit pub_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a699f864e05fe964363aeaeb600eeb6b4 inherit pub_methods_class_subscriber"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subscriber.html#a699f864e05fe964363aeaeb600eeb6b4">~Subscriber</a> ()</td></tr>
<tr class="separator:a699f864e05fe964363aeaeb600eeb6b4 inherit pub_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a39d6da19d7f51c1df904f482101557c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_service.html">Service</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#a39d6da19d7f51c1df904f482101557c2">AddSubservice</a> (<a class="el" href="class_service.html">Service</a> &amp;service)</td></tr>
<tr class="separator:a39d6da19d7f51c1df904f482101557c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37c9e32f9044122d3a6d2ab40fc17c39"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#a37c9e32f9044122d3a6d2ab40fc17c39">HandleStart</a> ()</td></tr>
<tr class="separator:a37c9e32f9044122d3a6d2ab40fc17c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38a2e9e764f74fe0da634d2252ee8744"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#a38a2e9e764f74fe0da634d2252ee8744">HandleStop</a> ()</td></tr>
<tr class="separator:a38a2e9e764f74fe0da634d2252ee8744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9604d04295202019e9a15f8c93bb31c6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_service.html#a9604d04295202019e9a15f8c93bb31c6">HandlePeriodic</a> ()</td></tr>
<tr class="separator:a9604d04295202019e9a15f8c93bb31c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_subscriber"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_subscriber')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_subscriber.html">Subscriber</a></td></tr>
<tr class="memitem:adf012d21f14dd64d1afd95efe799d370 inherit pro_methods_class_subscriber"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:adf012d21f14dd64d1afd95efe799d370 inherit pro_methods_class_subscriber"><td class="memTemplItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_subscriber.html#adf012d21f14dd64d1afd95efe799d370">RequireControl</a> (T &amp;obj)</td></tr>
<tr class="separator:adf012d21f14dd64d1afd95efe799d370 inherit pro_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa545a5133edce53707738ee55d7b47cc inherit pro_methods_class_subscriber"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa545a5133edce53707738ee55d7b47cc inherit pro_methods_class_subscriber"><td class="memTemplItemLeft" align="right" valign="top">boost::shared_ptr&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_subscriber.html#aa545a5133edce53707738ee55d7b47cc">Launch</a> (boost::shared_ptr&lt; T &gt; operation)</td></tr>
<tr class="separator:aa545a5133edce53707738ee55d7b47cc inherit pro_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4d2c5853af0a642ce7f5b52b3d09112 inherit pro_methods_class_subscriber"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ac4d2c5853af0a642ce7f5b52b3d09112 inherit pro_methods_class_subscriber"><td class="memTemplItemLeft" align="right" valign="top">boost::shared_ptr&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_subscriber.html#ac4d2c5853af0a642ce7f5b52b3d09112">Launch</a> (T *operation, bool canDeleteOperation=false)</td></tr>
<tr class="separator:ac4d2c5853af0a642ce7f5b52b3d09112 inherit pro_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8db71f899cdbf3608791b8506814c850 inherit pro_methods_class_subscriber"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_subscriber.html#a8db71f899cdbf3608791b8506814c850">CancelAllOperations</a> ()</td></tr>
<tr class="separator:a8db71f899cdbf3608791b8506814c850 inherit pro_methods_class_subscriber"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:af45e8a01b72511d7dc39a93fdbeada29"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af45e8a01b72511d7dc39a93fdbeada29"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>SystematicRobot</b></td></tr>
<tr class="separator:af45e8a01b72511d7dc39a93fdbeada29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a184f0b5ddaaf495f876254d012d30fb0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a184f0b5ddaaf495f876254d012d30fb0"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>CompoundService</b></td></tr>
<tr class="separator:a184f0b5ddaaf495f876254d012d30fb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8c7806d4e98a1747e10c6ee871410b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8c7806d4e98a1747e10c6ee871410b9"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>StateMachineService</b></td></tr>
<tr class="separator:ad8c7806d4e98a1747e10c6ee871410b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="class_service.html">Service</a> class controls robot subsystems and other Services.</p>
<p>A <a class="el" href="class_service.html">Service</a> broadly represents a will to do something. (e.g. A DriveService would represent the will to drive the robot.)</p>
<p>To use it, create subclasses that override HandleStart, HandleStop, and HandlePeriodic. Remember that they will only run if they have been started by the Start function.</p>
<p>All Services must be added to the <a class="el" href="class_systematic_robot.html">SystematicRobot</a> or to a <a class="el" href="class_service.html">Service</a> already added to the robot. A service can be added to the robot in such a way as to run when the robot is in a certain state (e.g. Autonomous, Teleop). They will be started at the correct time, and can start other Services as needed.</p>
<p>Testing shows this class works. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="acc246c9f7ed3c51e2d91d10fe257513f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Service::Service </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructor for <a class="el" href="class_service.html">Service</a>. </p>

</div>
</div>
<a class="anchor" id="af6c3577b59652ac817d1d76aaccee904"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Service::~Service </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor for <a class="el" href="class_service.html">Service</a>. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a39d6da19d7f51c1df904f482101557c2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_service.html">Service</a> &amp; Service::AddSubservice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_service.html">Service</a> &amp;&#160;</td>
          <td class="paramname"><em>service</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Add a subservice to the service.</p>
<p>This is necessary for two reasons.</p>
<ol type="1">
<li>So subservice gets added to the robot automatically.</li>
<li>So this service and one subservice can share a control lock on the same object (such as a subsystem).</li>
</ol>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">serivice</td><td>A reference to the <a class="el" href="class_service.html">Service</a> to be added as a subservice.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The service parameter. </dd></dl>

</div>
</div>
<a class="anchor" id="ac6ba2b89e56e24074c03c61254ab7f14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Service::GetIsStarted </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Get whether the <a class="el" href="class_service.html">Service</a> is started.</p>
<dl class="section return"><dt>Returns</dt><dd>Whether the <a class="el" href="class_service.html">Service</a> is started. </dd></dl>

</div>
</div>
<a class="anchor" id="a9604d04295202019e9a15f8c93bb31c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Service::HandlePeriodic </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function should be overridden to handle the periodic <a class="el" href="class_service.html">Service</a> tasks. It will be called periodically when the this controller is started. </p>

<p>Reimplemented from <a class="el" href="class_subscriber.html#a6ffeb82e812ef06db4aff08ee01d427b">Subscriber</a>.</p>

<p>Reimplemented in <a class="el" href="class_selector_service.html#a03e873370af26ecad1d1ac5a77d62c42">SelectorService&lt; Item &gt;</a>, <a class="el" href="class_selector_service.html#a03e873370af26ecad1d1ac5a77d62c42">SelectorService&lt; Service * &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#aac337e302b872d3126366ceb966aec3c">TwoJoystickDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#aac337e302b872d3126366ceb966aec3c">TwoJoystickDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#aac337e302b872d3126366ceb966aec3c">TwoJoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;</a>, <a class="el" href="class_joystick_drive_service.html#a14aafab1dedef204fbb3b4687e337732">JoystickDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_joystick_drive_service.html#a14aafab1dedef204fbb3b4687e337732">JoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;</a>, <a class="el" href="class_async_result_finish_state.html#a9c327aa447e197c8f6e3b50150d46162">AsyncResultFinishState&lt; Result &gt;</a>, <a class="el" href="class_xbox_drive_service.html#a1eb41645f36bf2a5c20777b0659fab12">XboxDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_xbox_drive_service.html#a1eb41645f36bf2a5c20777b0659fab12">XboxDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;</a>, <a class="el" href="class_ps3_drive_service.html#ab169aaf1d278843a0b7df0aea3396b9b">Ps3DriveService&lt; Drive, Value, Fetcher, Handler &gt;</a>, <a class="el" href="class_state.html#a29e67195da90c4c44e0e8f0fbe938c7c">State</a>, <a class="el" href="class_state_machine_service.html#a6d449ca476108879d39c457f6ed0c443">StateMachineService</a>, <a class="el" href="class_live_window_service.html#afbb5d49a99c6d033d4556f9e32917ad3">LiveWindowService</a>, <a class="el" href="class_game_service.html#a8a71b44e940f9698128ca46b19ed7abb">GameService</a>, <a class="el" href="class_async_status_finish_state.html#a21f727ef7e4c1e5f284febf8f649f19a">AsyncStatusFinishState</a>, and <a class="el" href="class_time_wait_state.html#a67589e93acff3c395470f3fb4ad43e57">TimeWaitState</a>.</p>

</div>
</div>
<a class="anchor" id="a37c9e32f9044122d3a6d2ab40fc17c39"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Service::HandleStart </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function should be overridden to handle the <a class="el" href="class_service.html">Service</a> starting. </p>

<p>Reimplemented in <a class="el" href="class_selector_service.html#a422be7e8347b12f51baa756797b6a855">SelectorService&lt; Item &gt;</a>, <a class="el" href="class_selector_service.html#a422be7e8347b12f51baa756797b6a855">SelectorService&lt; Service * &gt;</a>, <a class="el" href="class_state_machine_service.html#a146fcaefa174e2ba1fc0a0b2c04ae64d">StateMachineService</a>, <a class="el" href="class_live_window_service.html#af6494d6c02f3e51792203f3ed60a43a0">LiveWindowService</a>, and <a class="el" href="class_compound_service.html#ab0bb8d8f7b5bc8f9f5911d9c17637452">CompoundService</a>.</p>

</div>
</div>
<a class="anchor" id="a38a2e9e764f74fe0da634d2252ee8744"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Service::HandleStop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function should be overridden to handle the <a class="el" href="class_service.html">Service</a> stopping. </p>

<p>Reimplemented in <a class="el" href="class_selector_service.html#a0105771fb348849983bfd2f622928626">SelectorService&lt; Item &gt;</a>, <a class="el" href="class_selector_service.html#a0105771fb348849983bfd2f622928626">SelectorService&lt; Service * &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#a30d954d7a0e110e2333fd95d69631471">TwoJoystickDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#a30d954d7a0e110e2333fd95d69631471">TwoJoystickDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;</a>, <a class="el" href="class_two_joystick_drive_service.html#a30d954d7a0e110e2333fd95d69631471">TwoJoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;</a>, <a class="el" href="class_joystick_drive_service.html#a10fdd6658947a370286c07028cebce24">JoystickDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_joystick_drive_service.html#a10fdd6658947a370286c07028cebce24">JoystickDriveService&lt; TankDriveSubsystem, TankValue, TankDriveSubsystem::DriveByTank &gt;</a>, <a class="el" href="class_xbox_drive_service.html#a4f77af860a0bcb98d07fc7a79c8e9104">XboxDriveService&lt; Drive, Value, Handler &gt;</a>, <a class="el" href="class_xbox_drive_service.html#a4f77af860a0bcb98d07fc7a79c8e9104">XboxDriveService&lt; MecanumDriveSubsystem, CartesianValue, MecanumDriveSubsystem::DriveByCartesian &gt;</a>, <a class="el" href="class_ps3_drive_service.html#a135315dcf41b30931c842519978e1fc2">Ps3DriveService&lt; Drive, Value, Fetcher, Handler &gt;</a>, and <a class="el" href="class_live_window_service.html#ae274bcb5c79ee4b856996760906164af">LiveWindowService</a>.</p>

</div>
</div>
<a class="anchor" id="ab90e8000ec50c6c618226d27a562b151"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Service::Start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Starts the <a class="el" href="class_service.html">Service</a> and subscribes to the robot. </p>

</div>
</div>
<a class="anchor" id="a5e52f5900502d844e424861b20fcd66b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Service::Stop </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Stops the <a class="el" href="class_service.html">Service</a> and unsubscribes from the robot. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>C:/Users/Sam/Projects/FRC/Libraries/Fpk/Entech-Fpk-Subscribers/Entech-Fpk/Services/<a class="el" href="_service_8hpp_source.html">Service.hpp</a></li>
<li>C:/Users/Sam/Projects/FRC/Libraries/Fpk/Entech-Fpk-Subscribers/Entech-Fpk/Services/Service.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Aug 12 2013 16:46:51 for EnTech FPK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>
